草庐IT

LiveData 从实践到原理

全部标签

【网络安全 | SQL注入】一文讲清预编译防御SQL注入原理

在防止SQL注入的方法中,预编译是十分有效的,它在很大程度上解决了SQL注入问题。SQL注入简析数据库查询语句未对SQL注入做任何防护时,语句基本如下:$name=$_POST['name'];$pass=$_POST['pass'];$sql="SELECT*FROMuserWHEREname='$name'ANDpass='$pass'";当我们提交name=-1'unionselect1,user()#,pass=12时,后端查询语句变为:$sql="SELECT*FROMuserWHEREname='-1'unionselect1,user()#'ANDpass='12'";等价于$s

Java通信原理(3)——多客户端连接(1)

一、概述    上一期我们了解了如何进行双端通信,本期更近一步,我们通过socket模型实现多客户端通信。二、单客户端的缺点    在单个客户端接入时,我们直接通过Socket循环监听去捕捉客户端于服务端的连接。因此一个服务端只能服务一个客户端,并且如果我们想实现信息交流,并向客户端发送消息,我们只能从服务端发送,这样服务端的功能就会被模糊掉。因此我们需要一个新的模型,将服务端作为客户端的中转站并且需要使多个客户端进行交流,那么我们就需要用到多客户端连接。三、多客户端连接    1、结构:我们的目标是将服务端作为信息中转站,并能够从一个客户端向另一个客户端发送消息因此接下来我们将实现服务端连接

【Redis】一文掌握Redis原理及常见问题

Redis是基于内存数据库,操作效率高,提供丰富的数据结构(Redis底层对数据结构还做了优化),可用作数据库,缓存,消息中间件等。如今广泛用于互联网大厂,面试必考点之一,本文从数据结构,到集群,到常见问题逐步深入了解Redis,看完再也不怕面试官提问!高性能之道单线程模型基于内存操作epoll多路复用模型高效的数据存储结构redis的单线程指的是数据处理使用的单线程,实际上它主要包含IO线程:处理网络消息收发主线程:处理数据读写操作,包括事务、Lua脚本等持久化线程:执行RDB或AOF时,使用持久化线程处理,避免主线程的阻塞过期键清理线程:用于定期清理过期键至于redis为什么使用单线程处理

RasaGPT对话系统的工作原理

RasaGPT结合了Rasa和Langchain这2个开源项目,当超出Rasa现有意图(out_of_scope)的时候,就会执行ActionGPTFallback,本质上就是利用Langchain做了一个RAG,调用LLMAPI。RasaGPT涉及的技术栈比较多而复杂,包括Rasa、Langchain、LlamaIndex、Telegram、PostgresSQL、PGVector、Ngrok、FastAPI、Docker、docker-compose、Dozzle等。尽管对项目做了简化[3],删除了不容易实现的部分,但仍是一次失败的实践,各种原因没有完整运行起来。不过RasaGPT为结合R

Alpha-Beta剪枝的原理的深入理解(无图预警)

转载请注明原文链接:https://www.cnblogs.com/Multya/p/17929261.html考虑一个树:一棵树上只有叶子节点有值,有确定的根节点的位置根据层数来划分叶子节点和根节点之间的链接节点偶数层上的值取子节点的最大值,奇数取最小因为叶子节点上的值确定,在有这么个规则之后整棵树上所有节点就定下来了吧现在我遮住全部叶子节点,让你通过打开尽量少次数叶子节点,确定根节点的值我们通过alpha-beta剪枝来实现确定的事情:一个节点上的值必定是长在它身上的所有叶子的值中的一个max{a,min{b,x}}如果b比a小,无论x取什么,结果都是amin{a,max{b,x}}如果b

【源码系列#04】Vue3侦听器原理(Watch)

专栏分享:vue2源码专栏,vue3源码专栏,vuerouter源码专栏,玩具项目专栏,硬核💪推荐🙌欢迎各位ITer关注点赞收藏🌸🌸🌸语法侦听一个或多个响应式数据源,并在数据源变化时调用所给的回调函数constx=ref(0)consty=ref(0)//单个refwatch(x,(newValue,oldValue)=>{console.log(`xis${newValue}`)})//getter函数watch(()=>x.value+y.value,(newValue,oldValue)=>{console.log(`sumofx+yis:${newValue}`)})//多个来源组成的

详解Kafka分区机制原理|Kafka 系列 二

Kafka系列第二篇,详解分区机制原理。为了不错过更新,请大家将本号“设为星标”。点击上方“后端开发技术”,选择“设为星标”,优质资源及时送达上一篇文章介绍了Kafka的基本概念和术语,里面有个概念是分区(Partition)。kafka将一个Topic中的消息分成多份,分别存储在不同的Broker里,这每一段消息被kafka称为分区,其中每条消息只会保存在一个分区中。如果不太理解请回顾上一篇:开始学习Kafka,一文掌握基本概念|Kafka系列一 为什么有分区?为什么要有分区呢?Kafka的分区机制的本质就是将一个大的Topic进行拆分,将一组很大的队列拆分成了多组队列。这样做有以下几个好处

【编译原理】逆波兰式的产生及计算:C/C++实现

🌈个人主页:SarapinesProgrammer🔥系列专栏:《编译原理奇遇记》🔖墨香寄清辞:空谷幽篁风动,梦中仙鹤月明。辗转千秋豪情在,乘风翱翔志不移。目录结构1.编译原理之逆波兰式的产生及计算概念1.1编译原理1.2逆波兰式的产生及计算2.1实验目的2.2实验要求2.2.1算法流程图2.2.2参考代码(不完整)2.3实验内容2.3.1 实验解决代码2.3.2程序分析2.4实验心得3.致各位1.编译原理之逆波兰式的产生及计算概念1.1编译原理编译原理是计算机科学领域的一个重要分支,它研究如何将高级编程语言的源代码转化成计算机能够执行的机器代码或中间代码的过程。编译原理涵盖了编译器的设计和实现

网络基础(八):路由器的基本原理及配置

目录1、路由概述2、路由器2.1路由器的工作原理2.2路由器的转发原理3、路由表3.1路由表的概述3.2路由表的形成4、静态路由配置过程(使用eNSP软件配置) 4.1两个静态路由器配置过程4.2三个静态路由器配置过程5、默认路由配置过程5.1默认路由的概述5.2默认路由配置过程6、路由器转发数据包的封装过程6.1查看所有设备mac地址6.2过程说明6.3抓包验证7、交换与路由对比1、路由概述从源主机到目标主机的转发过程2、路由器2.1路由器的工作原理路由器是一种三层设备,是使用IP地址寻址,实现从源IP到达目标IP地址的端到端的服务,其工作原理就是根据路由表转发数据,详细过程如下:①路由器接

Spark On Hive原理和配置

目录一、SparkOnHive原理    (1)为什么要让SparkOnHive?二、MySQL安装配置(root用户)    (1)安装MySQL    (2)启动MySQL设置开机启动    (3)修改MySQL密码三、Hive安装配置    (1)修改Hadoop的core-site.xml    (2)创建hive-site.xml    (3)修改配置文件hive-env.sh    (4)上传mysql连接驱动    (5)初始化元数据(Hadoop集群启动后)        (6)创建logs目录,启动元数据服务    (7)启动Hiveshell四、SparkOnHive配置